package com.alter.global.base.article.service;

import java.util.List;

import com.alter.global.base.ArticleSearchVO;
import com.alter.model.AfArticle;
import com.alter.model.AfPersonalArticleType;
import com.alter.model.AfTag;
import com.alter.model.SeUser;
import com.alter.orm.Page;

public interface ArticleCenterService {

    /**
     * 创建一个新的文章
     * 
     * @param article
     *            當前文章
     * @param context
     *            文章內容
     * @param tags
     *            因为是多对多关系，而且tags内容有可能变动。 所以在确定之前不能set到article中， 会照成 ORM 映射错误
     */
    public void createArticle(AfArticle article, String context, List<AfTag> tags);

    /**
     * 分页查找
     * @param searchVO 查询条件对象
     * @return {@link Page}
     */
    public Page<AfArticle> find(ArticleSearchVO searchVO);

    /**
     * 根据AID 查找文章
     * 
     * @param aid
     *            文章ID
     * @return {@link AfArticle}
     */
    public AfArticle findByAid(String aid);
    
    /**
     * 查看个人博客分类
     * @param user
     * @return
     */
    public List<AfPersonalArticleType> searchAriticleTypesByUser(SeUser user);
    
}
